package com.ydd.service.impl;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.ydd.dto.YddTagQueryDTO;
import com.ydd.entity.YddTag;
import com.ydd.mapper.YddTagMapper;
import com.ydd.result.PageResult;
import com.ydd.service.YddTagService;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.annotations.Update;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
@Slf4j
public class YddTagServiceImpl implements YddTagService {

    @Autowired
    private YddTagMapper yddTagMapper;

    /**
     * 标签分页
     * @param yddTagQueryDTO
     * @return
     */
    @Override
    public PageResult page(YddTagQueryDTO yddTagQueryDTO) {
        //1.设置分页查询参数
        PageHelper.startPage(yddTagQueryDTO.getPage(),yddTagQueryDTO.getLimit());
        //2.调用yddTagMapper进行分页查询，添加条件为角色名模糊查询，返回tagList的集合
        Page<YddTag> page=yddTagMapper.list(yddTagQueryDTO.getTagname());
        List<YddTag> tagList = page.getResult();

        return PageResult.builder()
                .currentPage(yddTagQueryDTO.getPage())
                .data(tagList)
                .pageSize(yddTagQueryDTO.getLimit())
                .totalPages(page.getPages())
                .count(page.getTotal())
                .build();
    }

    /**
     * 根据id查询标签
     * @param id
     * @return
     */
    @Override
    public YddTag getById(Integer id) {
        YddTag yddTag=yddTagMapper.getById(id);
        return yddTag;
    }

    /**
     * 标签添加
     * @param yddTag
     */
    @Override
    public void add(YddTag yddTag) {
        yddTagMapper.add(yddTag.getTagname());
    }

    /**
     * 标签列表-全部
     * @return
     */
    @Override
    public List<YddTag> all() {
        List<YddTag> yddTagList=yddTagMapper.all();
        return yddTagList;
    }

    /**
     * 标签修改
     * @param yddTag
     */
    @Override
    public void update(YddTag yddTag) {
        yddTagMapper.update(yddTag.getId(),yddTag.getTagname());
    }

    /**
     * 标签删除
     * @param id
     */
    @Override
    public void delete(Integer id) {
        yddTagMapper.delete(id);
    }
}
